/* steps to build app 1- enter phone number 2-pick my trackers 3-track me service 4-find my phone list 5- view on map 6- save into file */ // pick phone number void PickContact(){ Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); startActivityForResult(intent, PICK_CONTACT); } // Declare static final int PICK_CONTACT=1; @Override public void onActivityResult(int reqCode, int resultCode, Intent data) { super.onActivityResult(reqCode, resultCode, data); switch (reqCode) { case (PICK_CONTACT) : if (resultCode == Activity.RESULT_OK) { Uri contactData = data.getData(); Cursor c = getContentResolver().query(contactData, null, null, null, null); if (c.moveToFirst()) { String id =c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID)); String hasPhone =c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); String cNumber="No number"; if (hasPhone.equalsIgnoreCase("1")) { Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ id, null, null); phones.moveToFirst(); cNumber =ManagmentOperations.FormatPhoneNumber (phones.getString(phones.getColumnIndex("data1"))); System.out.println("number is:"+cNumber); } String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); if (cNumber.length()<10){ ShowAlert(getResources().getString(R.string.PhoneNumber_error)); return; } //update firebase and //update list //update database } } break; } } //************************************************************** //format phone number public static String FormatPhoneNumber(String Oldnmber){ try{ String numberOnly= Oldnmber.replaceAll("[^0-9]", ""); if(Oldnmber.charAt(0)=='+') numberOnly="+" +numberOnly ; if (numberOnly.length()>=10) numberOnly=numberOnly.substring(numberOnly.length()-10,numberOnly.length()); return(numberOnly); } catch (Exception ex){ return(" "); } } //************************************************************** //list my tracking databaseReference.child("Users").child(GlobalInfo.PhoneNumber). child("Finders").addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { Map<String, Object> td = (HashMap<String, Object>) dataSnapshot.getValue(); listnewsData.clear(); if (td == null) //no one allow you to find him { listnewsData.add(new AdapterItems("NoTicket", "no_desc")); myadapter.notifyDataSetChanged(); return; } // List<Object> values = td.values(); // get all contact to list ArrayList<AdapterItems> list_contact = new ArrayList<AdapterItems>(); Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); String phoneNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); list_contact.add(new AdapterItems( name,GlobalInfo.FormatPhoneNumber(phoneNumber) )); } // if the name is save chane his text // case who find me String tinfo; for ( String Numbers : td.keySet()) { for (AdapterItems cs : list_contact) { //IsFound = SettingSaved.WhoIFindIN.get(cs.Detals); // for case who i could find list if (cs.PhoneNumber.length() > 0) if (Numbers.contains(cs.PhoneNumber)) { listnewsData.add(new AdapterItems(cs.UserName, cs.PhoneNumber)); break; } } } myadapter.notifyDataSetChanged(); } @Override public void onCancelled(DatabaseError error) { // Failed to read value // Log.w(TAG, "Failed to read value.", error.toException()); } }); //Global file Context context; SharedPreferences ShredRef; public GlobalInfo(Context context){ this.context=context; ShredRef=context.getSharedPreferences("myRef",Context.MODE_PRIVATE); } void SaveData(){ String MyTrackersList="" ; for (Map.Entry m:GlobalInfo.MyTrackers.entrySet()){ if (MyTrackersList.length()==0) MyTrackersList=m.getKey() + "%" + m.getValue(); else MyTrackersList =MyTrackersList+ "%" + m.getKey() + "%" + m.getValue(); } if (MyTrackersList.length()==0) MyTrackersList="empty"; SharedPreferences.Editor editor=ShredRef.edit(); editor.putString("MyTrackers",MyTrackersList); editor.putString("PhoneNumber",PhoneNumber); editor.commit(); } void LoadData(){ MyTrackers.clear(); PhoneNumber= ShredRef.getString("PhoneNumber","empty"); String MyTrackersList= ShredRef.getString("MyTrackers","empty"); if (!MyTrackersList.equals("empty")){ String[] users=MyTrackersList.split("%"); for (int i=0;i<users.length;i=i+2){ MyTrackers.put(users[i],users[i+1]); } } if (PhoneNumber.equals("empty")){ Intent intent=new Intent(context, Login.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } }